Skip to content

day01.[环境变量,HelloWorld,常量]

java
今日重点:
  1.知道jdk和jre以及jvm的联系
  2.会安装jdk以及配置环境变量
  3.会简单的dos命令 -> cd命令
  4.会编写一个简单的java入门程序 -> HelloWorld
  5.入门程序的每一句话代表啥
  6.会使用注释对代码进行解释说明
  7.会使用idea

第一章 Java 概述

1.1 JavaSE 课程体系介绍

JavaSE 知识图解

1561379629326

JavaSE 知识模块介绍

  • 第一部分:计算机编程语言核心结构:数据类型运算符流程控制数组、…

    java
    固定语法 -> 按照格式去写 -> 多写几遍
  • 第二部分:Java 面向对象核心逻辑:类和对象封装继承多态抽象接口、…

    java
    1.为啥找对象-> 让事情变的简单
    2.java中的面向对象-> 少写代码
      封装
      继承
      多态
  • 第三部分:JavaSE 核心高级应用:集合I/O多线程网络编程反射机制、…

  • 第四部分:Java 新特性:Lambda表达式函数式编程新Date/Time API接口的默认、静态和私有方法、…

  • 第五部分:MySQL/JDBC 核心技术:SQL语句数据库连接池DBUtils事务管理批处理、…

1.2 计算机语言介绍(了解)

计算机编程语言是什么

所谓计算机编程语言,就是人们使用编程语言对计算机下达的命令,让计算机完成人们需要的功能。

java
说白了就是计算机能听懂的语言-> 计算机编程语言
我们需要用计算机编程语言对计算机下达指令,让计算机帮我们做事儿 -> Java C PHP  .net  py等

计算机语言发展

  • 第一代:机器语言(计算机很庞大,都是 0 和 1 组成的指令,而且需要同时按下多个键才能完成一个指令,而且用 0 和 1 组成的一个一个指令,所以工程师们就要记住 0 和 1 的各种组合以及对应的指令)

  • 第二代:汇编语言(面向机器的语言,因为直接面对机器需要记一些 0 和 1 的指令,很痛苦,所以就出现了很多助记词,比如:add.汇编语言现在还在使用,接近于机器语言,越接近机器语言,速度越快,而且最终还是转成 0 和 1 存储)

  • 第三代:高级语言(更接近我们人类语言,常见的有很多,比如 C 语言,java 等)

    java
    不管是第几代最终都要向机器语言靠拢 -> 因为CPU只认0和1
    我们电脑上所有能看到的内容都是cpu将0和1转换过来的

计算机语言排行榜

image-20201109084739737

计算机语言走势

image-20200820180851296

1.3 Java 语言概述(了解)

Java 生态圈

**Java 是目前应用最为广泛的软件开发平台之一。**随着 Java 以及 Java 社区的不断壮大,Java 也早已不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。

**作为一个平台,**Java 虚拟机扮演着举足轻重的作用。除了 Java 语言,任何一种能够被编译成字节码的计算机语言都属于 Java 这个平台。Groovy、Scala、 JRuby、Kotlin 等都是 Java 平台的一部分,它们依赖于 Java 虚拟机,同时,Java 平台也因为它们变得更加丰富多彩。而且 Java 还可以跨平台

**作为一种文化,**Java 几乎成为了 “开源”的代名词。在 Java 程序中,有着数不清的开源软件和框架。如 Tomcat、Struts, Hibernate, Spring,MyBatis 等。就连 JDK 和 JVM 自身也有不少开源的实现,如 OpenJDK、Apache Harmony。可以说,“共享”的精神在 Java 世界里体现得淋漓尽致。

**作为一个社区,**Java 拥有全世界最多的技术拥护者和开源社区支持,有数不清的论坛和资料。从桌面应用软件、嵌入式开发到企业级应用、后台服务器、中间件,都可以看到 Java 的身影。其应用形式之复杂、参与人数之众多也令人咋舌。可以说,Java 社区已经俨然成为了一个良好而庞大的生 mdc 态系统。其实这才是 Java 最大的优势和财富。

Java 是最好的语言吗?

不是,因为在每个领域都有更合适的编程语言。

  • C 语言无疑是现代计算机软件编程语言的王者,几乎所有的操作系统都是 C 语言写成的。C 里面有一个编译器,会将系统软件变成机器语言,让硬件识别,和硬件做交互.C++ 是面向对象的 C 语言,一直在不断的改进。

  • JavaScript 是能运行在浏览器中的语言,丰富的前端界面离不开 Javascript 的功劳。近年来的 Node.js 又在后端占有一席之地。

  • Python 用于系统管理,并通过高性能预编译的库,提供 API 来进行科学计算,文本处理等,是 Linux 必选的解释性语言。现在 Python 也被用于 web 开发、科学计算和统计、人工智能、网络爬虫等

  • Ruby 强于 DSL(领域特定语言),程序员可以定义丰富的语义来充分表达自己的思想。

  • Erlang 就是为分布式计算设计的,能保证在大规模并发访问的情况下,保持强壮和稳定性。

  • Go 语言内置了并发能力,可以编译成本地代码。当前新的网络相关项目,很大比例是由 Go 语言编写的,如 Docker、Kubernetes 等。

  • 编写网页用 PHP,函数式编程有 Lisp,编写 iOS 程序有 Swift/Objective-C。

  • R 的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法

  • SQL 是用于访问和处理数据库的标准的计算机语言, 这类数据库包括:MySQL,Oracle, Sybase, SQL Server, DB2, Access 等等

一句话概括,能留在排行榜之上的语言,都是好的语言,在其所在的领域能做到最好。

Java 语言发展历史

Java 诞生于 SUN(Stanford University Network),09 年 SUN 被 Oracle(甲骨文)收购。

Java 之父是詹姆斯.高斯林(James Gosling)。

1615793633189

詹姆斯·高斯林等人于 1990 年代初开发 Java 语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun 公司放弃了该项计划。随着 1990 年代互联网的发展,Sun 公司看见 Oak 在互联网上应用的前景,于是改造了 Oak,于 1995 年 5 月以 Java 的名称正式发布。Java 伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

1996 年发布 JDK1.0 版。

目前最新的版本是 Java21。我们学习的 Java17。

Java1995.05.23Sun 公司在 Sun world 会议上正式发布 Java 和 HotJava 浏览器
Java 1.01996.01.23Sun 公司发布了 Java 的第一个开发工具包
Java 1.11997.02.19
Java 1.21998.12.08拆分成:J2SE(标准版)、J2EE(企业版)、J2ME(小型版)
Java 1.32000.05.08
Java1.42004.02.06
Java 5.02004.09.30① 版本号从 1.4 直接更新至 5.0;② 平台更名为 JavaSE、JavaEE、JavaME
发行版本发行时间备注
Java 6.02006.12.112009.04.20 Oracle 宣布收购 SUN 公司
Java 7.02011.07.02
Java 8.02014.03.18
Java 9.02017.09.22① 每半年更新一次;②Java 9.0 开始不再支持 windows 32 位系统
Java 10.02018.03.21
Java 11.02018.09.25JDK 安装包取消独立 JRE 安装包,长期支持版本
Java 12.02019.03.19
Java 13.02019.9.18
Java 14.02020.3.17
java
Google和Oracle的侵权事件:

Google 和 Oracle 纠缠多年的“Java 侵权案”又有了新的判决结果。Google 在此次对决中败诉,并可能需要支付高达88亿美元的赔偿金。这个案件还引发关于 API(应用程序编程接口)是否应该受版权保护的争议。

其实早在2010年8月,Oracle 就已经向法院起诉 Google 侵权,声称 Google 在开发 Android 平台时未经授权就使用了 Oracle 的 Java 应用编程接口数据包。

另外,虽然 Google 当年为避免版权问题而重写了 Java API,却意外地使用了和 Oracle JDK 相同的一小段代码,这使得 Google 陷入不利的局面。

正是由于 Google 在 Android 平台上使用 Java 时并未和 Sun 公司达成授权协议,造成了巨大的隐患,尤其是在 Oracle 收购 Sun 公司之后。
1708518865870

Java 技术体系平台

  • JavaSE(Java Platform, Standard Edition 标准版):允许您在桌面和服务器上开发和部署 Java 应用程序。Java 提供了丰富的用户界面、性能、多功能性、可移植性和当今应用程序所需的安全性。
  • JavaEE(Java Platform, Enterprise Edition 企业版):是为开发企业环境下的应用程序提供的一套解决方案,主要针对于 Web 应用程序开发。
  • JavaME(Java Platform, Micro Edition 小型版):为互联网上的嵌入式和移动设备上运行的应用提供了一个健壮、灵活的环境:微控制器、传感器、网关、移动电话、个人数字助理(PDA)、电视机顶盒、打印机等等。JavaME 包括灵活的用户界面、健壮的安全性、内置的网络协议,以及支持动态下载的网络和离线应用程序。基于 JavaME 的应用程序在许多设备上都是可移植的,但是利用了每个设备的本机功能。
    • Java Embedded(Im'bedId): 用于解锁物联网的智能设备的价值: 通过远程市场更新和刷新功能延长产品生命周期和价值; 利用 Java 的可伸缩性、健壮性、可移植性和全套功能,提高生产效率,降低成本,缩短上市时间; 在边缘启用快速数据功能;
    • Java Card:使安全元件(如智能卡和其他防篡改安全芯片)能够承载采用 Java 技术的应用程序。Java card 提供了一个安全的、可互操作的执行平台,它可以在一个资源受限的设备上存储和更新多个应用程序,同时保持最高的认证级别和与标准的兼容性。
    • Java TV:是一种基于 JavaME 的技术,它为开发在 tv 和机顶盒设备上运行的 java 应用程序提供了一个性能良好、安全且易于实现的解决方案。使用 Java TV 运行时,开发人员可以轻松创建应用程序,例如电子节目指南(EPG)、视频点播(VOD)客户端、游戏和教育应用程序、用于访问 Internet 数据的应用程序(例如天气、新闻播报器、社交网络)以及大多数蓝光光盘标题上的用户界面和奖金内容。

1.4 什么是软件开发

java
1.概述:
  软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程
  软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程
  软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发

2.我们将来主要从事软件开发中各个环节的哪个环节呢?  实现

3.我们将来主要用什么程序设计语言来开发呢?  Java

第二章.Java 语言前言

1.Java 的介绍

java
1.计算机编程语言:计算机能看懂的语言,我们能使用计算机编程语言对计算机下达指令-》 java
2.java之父:詹姆斯高斯林
3.java涉及到的领域:主要用于互联网领域,开发应用程序
  a.各行各业的操作系统,网站
  b.移动端:医疗设备上,超市打印小票机器,鸿蒙,安卓等
  c.电商网站
  d.物流管理
  e.银行使用的操作系统等
  f.桌面应用(idea)
  g.企业级开发(服务器程序)
  h.科学计算:机器人
  i.大数据库开发:hadoop
  j.游戏开发
4.目前安装的jdk版本:jdk17

2.字节

java
1.概述:计算机上最小的计量单位,叫做字节,用byte或者B表示
2.8个二进制位(bit)等于1个字节
3.计算机中计量单位的进制:
  8bit = 1B
  1024B = 1KB
  1024KB = 1MB
  1024MB = 1GB
  1024GB = 1TB
  ...
1741834405301

3.常用的 dos 命令

java
1.调出dos命令窗口(黑窗口)
  win+r -> 输入cmd
17418347202051741834823600
作用命令
切换盘符盘符名:
查看有啥文件夹或者有啥文件dir
进入指定文件夹cd 文件夹名
进入到多级文件夹cd 文件夹名\文件夹名
退到上一级目录cd..
直接推到根目录(盘符位置)cd\
清屏cls
退出黑窗口exit
创建文件夹mkdir 文件夹名
创建多级文件夹mkdir 文件夹名\文件夹名
删除文件del 文件名.后缀名
批量删除文件del *.后缀名

小技巧:

1.快速打开指定的位置对应的 dos 命令窗口

​ a.选中指定的路径

​ b.输入 cmd

2.输入一个文件夹名或者文件名的开头一个或者多个字母-> 按 tab 键-> 能补全文件名或者文件夹名

第三章.Java 所需要的环境

1.jvm 和跨平台

java
1.jvm(Java Virtual Machine):java运行所需要的环境,是一台假想计算机
2.跨平台:代码可以在不同的操作系统上运行
        a.跨:跨越
        b.平台:操作系统
3.jvm和跨平台关系:
  java程序想要实现跨平台,需要安装不同版本的jvm
1741837774539

2.JDK 和 JRE

java
1.jdk(Java Development Kit):java开发工具包,里面包含了jre,以及一些开发工具
2.jre(Java Runtime Environment):java运行的环境,jre包含jvm以及核心类库

jdk 和 jre 以及 jvm 关系:包含关系

jdk 包含 jre;jre 包含 jvm

2.1.jdk 安装

java
1.进入oracle官网 -> www.oracle.com
1741838214629
java
2.双击-> 一路下一步
3.注意-> 安装的过程中 -> 选择一下安装路径 -> 开发相关的软件安装路径上都不要有中文,空格

测试 jdk 是否真的好用:

​ 1.进入到 jdk 的 bin 目录下

​ 2.打开对应路径的 dos 命令窗口

​ 3.使用两个命令:

​ javac:编译命令

​ java: 运行命令

2.2.环境变量的配置

java
1.问题:我们写完java代码之后想要编译和运行,必须去jdk的bin路径,这样就很麻烦
2.我们想要达到的效果:在任意位置都可以使用javac和java命令 -> 配置环境变量
java
1.打开环境变量
  a.右键"此电脑"
  b.选择"属性"
  c.在属性里面,打开"高级系统设置"
  d.在高级系统设置里面,打开"环境变量"
java
方式1:(不推荐使用)
   直接将jdk的bin路径粘贴到path下
java
方式2:(极力推荐)
   JAVA_HOME
1741847380780

注意:配置环境变量之前,需要将安装 jdk17 时自动配置的 javapath 环境变量删除

第四章.Java 第一个程序的开发

1.开发三步骤

java
1.编写
  a.创建一个.txt文件,将后缀名改成.java
  b.注意:计算机需要显示后缀名
2.编译:javac  -> 生成一个xxx.class文件(字节码文件) -> jvm运行java程序只认class文件
  javac java文件名.java
3.运行:java
  java class文件名
1741847729957

2.编写 HelloWorld

java
public class Demo01HelloWorld{
	public static void main(String[] args){
		System.out.println("helloworld");
	}
}
1741848544427

小问题:

1.右键,新建没有文本文档或者文件夹的选项等不正常现象: 对着盘符右键 -> 安全 -> 改成"完全控制"

2.关机再开机 -> javac 和 java 命令用不了了 -> 进入到环境变量中,啥都不要操作,直接点确定即可

3.注释

java
1.概述:对代码进行的解释说明
2.分类:
  a.单行注释: //内容
  b.多行注释:
    /*
      内容
    */
  c.文档注释:
    /**
      内容
    */
java
/*
   下面一句话是在定义一个类
   class这个单词就代表的类的意思
   class后面的就是类名
   这个类名要和java文件名保持一致
*/
public class Demo01HelloWorld{
	/*
	  下面一句话是main方法
	  是程序的入口
	  程序的执行都是从main方法开始执行的
	*/
	public static void main(String[] args){
		//输出语句,可以将我们想要的结果输出到控制台上
		System.out.println("helloworld");
	}
}
java
1.问题:
  将来我们在一个类中会写很多方法,那么怎么让其他人快速对我们所写的这些代码有一个了解呢(比如了解,这个类是干啥的,谁写的,代码处于第几个版本,这个类中都有啥功能,每个功能都是干啥的等)
  我们就需要根据我们所写的java代码生成一个文档-> API文档

  API文档中的内容就是我们文档注释中写的内容

2.根据文档注释生成API文档的命令:
  javadoc -d 要生成的文件夹名字 -author -version 文件名.java
java
/**
  这个类是java程序的入门程序
  @author taoge
  @version v1.0
*/
public class Demo02HelloWorld{
	/**
	   这是main方法,是程序的入口
	*/
	public static void main(String[] args){
		System.out.println("helloworld");
	}
}

涛哥建议:

​ 1.在类上,方法上写注释:建议用文档注释

​ 2.方法内部写注释:可以用单行注释,或者多行注释

4.第一个 Java 程序中每一句话的解释以及注意事项

java
/**
  public class Demo03HelloWorld
  定义一个类

  类:java程序最基本的单元,所有代码都需要在类中写
  class:代表的是类
  class后面:类名 -> 类名一定要和java文件名保持一致
  public:权限修饰符,代表的是公共访问权限 -> 面向对象的时候会详细去说
*/
public class Demo03HelloWorld{
	/**
	  public static void main(String[] args)
	  main方法是程序的入口
	  代码都是从main方法开始运行的
	*/
	public static void main(String[] args){
		/*
		  System.out.println("helloworld")
		  输出语句(打印语句)
		  将我们想要的结果输出来
		*/
		System.out.println("helloworld");
	}
}
java
1.类名要和java文件名一致
2.括号要成对的写
3.标点符号都是英文的
4.不要将main写成mian
5.String和System的首字母要大写
6.代码写完一句用;结束,代表这一句话是单独的一句
17418521389141741852192700

6.关键字

java
1.概述:java提前定义好的,具有特殊含义的小写单词
2.怎么记:学到哪里记到哪里,在高级记事本中,颜色特殊
1741852435216

7.编写 HelloWorld 时要注意的问题

7.1 字符编码问题

java
1.编码:在保存,写入的过程中要遵守的规则
  解码:在读,显示的过程中要遵守的规则

2.中文常见的编码:
  GBK
  UTF-8

3.什么时候会乱码:
  编码和解码遵循的规则不同,反之相同就不乱码

4.注意:
  GBK:一个汉字占2个字节
  UTF-8:一个汉字占3个字节

  我们的dos命令窗口默认编码 -> GBK
1741854068726

7.2 源文件名(java 文件名)与类名一致问题?

java
1.类名和java文件名可以不一致
  除非类名不是public的可以不一致

2.类名前面带public,此时类名必须要java文件名一致

3.一个java文件中可以定义多个类,但是必须只能有一个类是public的

9.println 和 print 区别

java
1.相同点:
  都是输出语句
2.不同点:
  a.println:输出之后自动换行
  b.print:输出之后不换行
java
public class Demo06HelloWorld{
	public static void main(String[] args){
		System.out.println("鹅鹅鹅");
		System.out.println("曲项向天歌");
		System.out.println("白毛浮绿水");
		System.out.println("红掌拨清波");
	}
}

notepad++小技巧:

1.复制当前行: ctrl+d

2.快速一次操作多行:

​ a.预留出足够的空间

​ b.按住 alt 不放,鼠标往下拉

第五章.idea

1.idea 的介绍

java
1.概述:java最常用的,最重要的开发工具
2.作用:加速开发
3.特点:
  a.自动保存
  b.自动编译,自动运行
  c.管理代码
  d.有强大的插件,便于开发
  e.收费 -> 我们可以那个啥
  f.强大的快捷键
4.注意:idea是java写的
      所以使用idea必须先安装正确的环境变量

2.idea 的目录结构

1729730213989

将来我们写一个大的项目,可以先创建一个 Project,一个项目下会有很多的功能模块,我们就可以在这个 Project 下创建不同的 Module,每一个模块下都会有不同类型的代码,就可以在 Module 下面创建不同的 Package,用 Package(包)对同一个模块下的不同代码进行分类管理

严格要求:使用 idea

1.必须先创建 project

2.在 project 下创建 module

3.在 module 下的 src 下创建

3.如何去创建一个 Project

17297302252111729730234225

3.1 再次创建一个新的 Project

1708824581215

4.关闭 Project

java
file-> close project
1729730247509

5.打开 project

1708824786112

1729730267535

6.创建 module

1708825358051

6.1.关闭 module

1708825538041

6.2.导入已有的 module

1729730282643

1708825732688

7.创建以及删除 package

7.1 创建

1708827010469

7.2 package 的删除

java
右键->delete

7.3 package 取名字规范

java
1.全部小写
2.包名都是公司域名倒着写
  www.atguigu.com -> com.atguigu
1729730295818

8.创建类以及基本语句生成快捷键

1708827895942

1.生成 main 方法 -> 输入 main -> 回车

2.生成输出语句 -> sout

3.想将变量直接放到输出语句中:变量名.sout 或者 变量名.soutv(带好看格式的输出)

9.基本设置

9.1 设置字体

java
file->setiings
1729730306961

9.2 设置提示的快捷键

java
file->setiings

1708829192988

9.3 设置注释字体

1708829373265

10.快捷键

快捷键功能
Alt+Enter导入包,自动修正代码(重中之重)
Ctrl+Y删除光标所在行
Ctrl+D复制光标所在行的内容,插入光标位置下面
Ctrl+Alt+L格式化代码
Ctrl+/单行注释
Ctrl+Shift+/选中代码注释,多行注释,再按取消注释
Alt+Shift+上下箭头移动当前代码行

先写等号右边的数据,自动生成等号左边的数据类型和变量名:

1729730330419

11.出现的问题

java
1.创建project时,要选择empty project
2.在运行代码时会出现"找不到对应的发行源"或者"不支持发行版本",证明本地jdk版本和idea中的project level不匹配
  所以要匹配版本
  file->project Structure->点击project->引入本地jdk->project level选择对应的版本
3.没有out路径的问题
  out路径是专门存放idea自动编译生成的.class文件的
  所以需要指明out路径
4.对着src,右键,选项中没有java class或者package
  此时证明src是灰色的,不可用的 -> 需要设置一下src ->将src目录颜色变成蓝色
5.刚使用,jdk没有配置 -> 需要 配置jdk
1729730341073

12.idea 集成 AI 大模型(通义灵码)

1741857526954

通义灵码需要登录 -> 上阿里云,注册一个账号登录